#ifndef SCREEN_H_INCLUDED
#define SCREEN_H_INCLUDED

#include <SDL.h>
#include<SDL_image.h>
#include "Singleton.h"
#include <string>

class Screen : public Uncopyable
{
public:
	static Screen* Instance() // static means u can call this function even tho the constructor is uncallable
	{
		static Screen theScreen;
		return &theScreen;
	}
private:
	Screen(); // defines class as a singelton class (following singelton design pattern)
	friend class Singleton<Screen>;

	Screen(const Screen&); // these function stop questions coping
	Screen& operator=(const Screen&);

public:
	~Screen();
	bool CreateWindow();
	void Flip();
	SDL_Surface* GetSurface();
private:
	//friend class Image; // allows bridging between Image and Screen classes (allow use of private member var's) (one way, from Screen to Image)
	SDL_Surface* m_Surface;
};

#endif